package com.cmc.cloud.cmclink.doc.vo.specialcargoapplyvo;

import com.cmc.cloud.cmclink.doc.vo.sovo.attachmentvo.AttachmentUpdateReqVO;
import com.cmc.cloud.cmclink.doc.vo.special.externalapivo.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import javax.validation.Valid;
import java.util.List;

/**
 * 特种货审批主信息创建 Request VO
 *
 * @author codegen
 */
@Schema(description = "特种货创建和提交 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CreateOrCommitSpcReqVO extends ApplyCreateOrCommitReqVO {


    @Schema(description = "保存或提交，默认提交true")
    private Boolean commitOrSave;

    @Schema(description = "是否合作方，默认false")
    private Boolean partnerFlag;

    @Schema(description = "是否发生船名航次的修改")
    private Boolean changeVoyCheck;

    @Schema(description = "特种货航线信息")
    private List<SpecialCargoVoyageUpdateReqVO> spcVoyageInfo;

    @Schema(description = "特种货附件")
    private List<AttachmentUpdateReqVO> spcAttachmentList;

    @Schema(description = "OOG信息")
    private List<@Valid CntrAndOogBaseVO> cntrAndOogInfos;

    @Schema(description = "ODO信息")
    private List<@Valid CntrAndOdoBaseVO> cntrAndOdoInfos;

    @Schema(description = "FLEXI信息")
    private List<@Valid CntrAndFlexiBaseVO> cntrAndFlexiInfos;

    @Schema(description = "DG信息")
    private CntrAndDgBaseVO cntrAndDgInfos;

}
